home *** CD-ROM | disk | FTP | other *** search
Modula Implementation | 1996-03-01 | 4.8 KB | 162 lines | [TEXT/3PRM] |
- implementation module windows;
-
- import mac_types;
-
- InDesk :== 0;
- InMenuBar :== 1;
- InSysWindow :== 2;
- InContent :== 3;
- InDrag :== 4;
- InGrow :== 5;
- InGoAway :== 6;
- InZoomIn :== 7;
- InZoomOut :== 8;
-
- // Initialization and Allocation
-
- NewWindow :: !Ptr !Rect !{#Char} !Bool !Int !WindowPtr !Bool !Int !Toolbox -> (!WindowPtr,!Toolbox);
- NewWindow wStorage (left,top,right,bottom) title visible procID behind goAwayFlag refCon t
- = code (right=W,bottom=W,left=W,top=W,wStorage=D0,title=O0D1SD2,visible=D3,
- procID=D4,behind=D5,goAwayFlag=D6,refCon=D7,t=U) (window_pointer=D0,z=I8Z)
- {
- instruction 0x7CC600D0 | neg r6,r6
- instruction 0x7D2900D0 | neg r9,r9
- call .NewWindow
- };
-
- NewCWindow :: !Ptr !Rect !{#Char} !Bool !Int !WindowPtr !Bool !Int !Toolbox -> (!WindowPtr,!Toolbox);
- NewCWindow wStorage (left,top,right,bottom) title visible procID behind goAwayFlag refCon t
- = code (right=W,bottom=W,left=W,top=W,wStorage=D0,title=O0D1SD2,visible=D3,
- procID=D4,behind=D5,goAwayFlag=D6,refCon=D7,t=U)(window_pointer=D0,z=I8Z)
- {
- instruction 0x7CC600D0 | neg r6,r6
- instruction 0x7D2900D0 | neg r9,r9
- call .NewCWindow
- };
-
- DisposeWindow :: !WindowPtr !Toolbox -> Toolbox;
- DisposeWindow theWindow t = code (theWindow=D0,t=U)(z=Z){
- call .DisposeWindow
- };
-
- // Window Display
-
- SetWTitle :: !WindowPtr !{#Char} !Toolbox -> Toolbox;
- SetWTitle theWindow title t = code (theWindow=D0,title=SD1,t=U)(z=Z){
- call .SetWTitle
- };
-
- SelectWindow :: !WindowPtr !Toolbox -> Toolbox;
- SelectWindow theWindow t = code (theWindow=D0,t=U)(z=Z){
- call .SelectWindow
- };
-
- HideWindow :: !WindowPtr !Toolbox -> Toolbox;
- HideWindow theWindow t = code (theWindow=D0,t=U)(z=Z){
- call .HideWindow
- };
-
- ShowWindow :: !WindowPtr !Toolbox -> Toolbox;
- ShowWindow theWindow t = code (theWindow=D0,t=U)(z=Z){
- call .ShowWindow
- };
-
- ShowHide :: !WindowPtr !Bool !Toolbox -> Toolbox;
- ShowHide theWindow showFlag t = code (theWindow=D0,showFlag=D1,t=U)(z=Z){
- call .ShowHide
- };
-
- SendBehind :: !WindowPtr !WindowPtr !Toolbox -> Toolbox;
- SendBehind theWindow behindWindow t = code (theWindow=D0,behindWindow=D1,t=U)(z=Z){
- call .SendBehind
- };
-
- DrawGrowIcon :: !WindowPtr !Toolbox -> Toolbox;
- DrawGrowIcon theWindow t = code (theWindow=D0,t=U)(z=Z){
- call .DrawGrowIcon
- };
-
- FrontWindow :: !Toolbox -> (!WindowPtr,!Toolbox);
- FrontWindow t = code (t=U)(theWindow=D0,z=Z){
- call .FrontWindow
- };
-
- // Mouse Location
-
- FindWindow :: !Int !Int !Toolbox -> (!Int,!WindowPtr,!Toolbox);
- FindWindow h v t = code (h=R4D0,v=a0,t=O0D1U)(wher=D0,whichWindow=L,z=Z){
- instruction 0x52E3801E | rlwimi r3,r23,16,0,15
- call .FindWindow
- };
-
- TrackGoAway :: !WindowPtr !Int !Int !Toolbox -> (!Bool,!Toolbox);
- TrackGoAway theWindow h v t = code (theWindow=D0,h=D1,v=A0,t=U)(result=D0,z=Z){
- instruction 0x52E4801E | rlwimi r4,r23,16,0,15
- call .TrackGoAway
- instruction 0x70630001 | andi. r3,r3,1
- instruction 0x7C6300D0 | neg r3,r3
- };
-
- TrackBox :: !WindowPtr !Int !Int !Int !Toolbox -> (!Bool,!Toolbox);
- TrackBox theWindow h v partCode t = code (theWindow=D0,h=D1,v=A0,partCode=D2,t=U)(result=D0,z=Z){
- instruction 0x52E4801E | rlwimi r4,r23,16,0,15
- call .TrackBox
- instruction 0x70630001 | andi. r3,r3,1
- instruction 0x7C6300D0 | neg r3,r3
- };
-
- // Window Movement and Sizing
-
- MoveWindow :: !WindowPtr !Int !Int !Bool !Toolbox -> Toolbox;
- MoveWindow theWindow hGlobal vGlobal front t = code (theWindow=D0,hGlobal=D1,vGlobal=D2,front=D3,t=U)(z=Z){
- call .MoveWindow
- };
-
- DragWindow :: !WindowPtr !Int !Int !Rect !Toolbox -> Toolbox;
- DragWindow theWindow h v (left,top,right,bottom) t
- = code (right=W,bottom=W,left=W,top=W,theWindow=D0,h=D1,v=A0,t=O0D2U)(z=I8Z){
- instruction 0x52E4801E | rlwimi r4,r23,16,0,15
- call .DragWindow
- };
-
- GrowWindow :: !WindowPtr !Int !Int !Rect !Toolbox -> (!(!Int,!Int),!Toolbox);
- GrowWindow theWindow h v (left,top,right,bottom) t
- = code (right=W,bottom=W,left=W,top=W,theWindow=D0,h=D1,v=A0,t=O0D2U)(h2=D0,w2=D1,z=I8Z){
- instruction 0x52E4801E | rlwimi r4,r23,16,0,15
- call .GrowWindow
- instruction 0x5464843E | srwi r4,r3,16
- instruction 0x7063FFFF | andi. r3,r3,65535
- };
-
- SizeWindow :: !WindowPtr !Int !Int !Bool !Toolbox -> Toolbox;
- SizeWindow theWindow w h fUpdate t = code (theWindow=D0,w=D1,h=D2,fUpdate=D3,t=U)(z=Z){
- call .SizeWindow
- };
-
- ZoomWindow :: !WindowPtr !Int !Bool !Toolbox -> Toolbox;
- ZoomWindow theWindow partCode front t = code (theWindow=D0,partCode=D1,front=D2,t=U)(z=Z){
- call .ZoomWindow
- };
-
- // Update Region Maintenance
-
- InvalRect :: !Rect !Toolbox -> Toolbox;
- InvalRect (left,top,right,bottom) t = code (right=W,bottom=W,left=W,top=W,t=O0D0U)(z=I8Z){
- call .InvalRect
- };
-
- ValidRect :: !Rect !Toolbox -> Toolbox;
- ValidRect (left,top,right,bottom) t = code (right=W,bottom=W,left=W,top=W,t=O0D0U)(z=I8Z){
- call .ValidRect
- };
-
- BeginUpdate :: !WindowPtr !Toolbox -> Toolbox;
- BeginUpdate theWindow t = code (theWindow=D0,t=U)(z=Z){
- call .BeginUpdate
- };
-
- EndUpdate :: !WindowPtr !Toolbox -> Toolbox;
- EndUpdate theWindow t = code (theWindow=D0,t=U)(z=Z){
- call .EndUpdate
- };
-